home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 32
/
Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso
/
Aminet
/
dev
/
lang
/
Python152_Src.lha
/
Python152_Source
/
Amiga_Misc
/
testset
/
as.pyc
(
.txt
)
< prev
next >
Wrap
Python Compiled Bytecode
|
1998-10-31
|
2KB
|
70 lines
# Source Generated with Decompyle++
# File: in.pyc (Python 1.5)
import ARexx
import socket
sockets = { }
def cmd_dispatcher(host, msg, cmd, args):
try:
if cmd == 'GETHOSTBYNAME':
msg.result = socket.gethostbyname(args['HOST'])
elif cmd == 'GETHOSTNAME':
msg.result = socket.gethostname()
elif cmd == 'GETHOSTBYADDR':
(msg.result, aliaslist, ipaddrlist) = socket.gethostbyaddr(args['IPADDR'])
elif cmd == 'GETSERVBYNAME':
if args['TCP']:
prot = 'tcp'
if args['UDP']:
prot = 'udp'
msg.result = `socket.getservbyname(args['SERVICE'], prot)`
elif cmd == 'CONNECTSOCKET':
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(args['HOST'], args['PORT'])
sockets[sock.fileno()] = sock
msg.result = `sock.fileno()`
elif cmd == 'CLOSESOCKET':
fd = args['SOCKET']
sockets[fd].close()
del sockets[fd]
elif cmd == 'READSOCKET':
msg.result = sockets[args['SOCKET']].recv(args['LEN'])
if not (msg.result):
msg.rc = ARexx.RC_WARN
elif cmd == 'WRITESOCKET':
msg.result = `sockets[args['SOCKET']].send(args['DATA'])`
elif cmd == 'WRITESOCKETCR':
msg.result = `sockets[args['SOCKET']].send(args['DATA'] + '\n')`
except socket.error:
string = None
msg.rc = ARexx.RC_ERROR
if type(string) == type(''):
msg.rc2 = string
else:
msg.rc2 = string[1]
except:
type(string) == type('')
return 1
cmds = [
('GETHOSTBYNAME', 'HOST/A', None, cmd_dispatcher),
('GETHOSTNAME', '', None, cmd_dispatcher),
('GETHOSTBYADDR', 'IPADDR/A', None, cmd_dispatcher),
('GETSERVBYNAME', 'SERVICE/A,TCP/S,UDP/S', {
'TCP': -1,
'UDP': 0 }, cmd_dispatcher),
('CONNECTSOCKET', 'HOST/A,PORT/N/A', None, cmd_dispatcher),
('CLOSESOCKET', 'SOCKET/A/N', None, cmd_dispatcher),
('READSOCKET', 'SOCKET/A/N,LEN/A/N', None, cmd_dispatcher),
('WRITESOCKET', 'SOCKET/A/N,DATA/A/F', None, cmd_dispatcher),
('WRITESOCKETCR', 'SOCKET/A/N,DATA/A/F', None, cmd_dispatcher)]
h = ARexx.host('PY_SOCK', cmds)
print 'Python ARexx host. Host is', h.name
h.run()